草庐IT

Android whatsapp 喜欢来电通知

全部标签

java - 如何通知另一个线程

我想知道如何通知另一个线程的最佳方式。比如我有一个后台线程:publicvoidStartBackgroundThread(){newThread(newRunnable(){@Overridepublicvoidrun(){//Dosomethingbig...//THENHOWTONOTIFYMAINTHREAD?}}).start();}当它完成时必须通知主线程?如果有人知道如何做到这一点的最佳方式,我将不胜感激! 最佳答案 典型的答案是BlockingQueue。BackgroundThread(通常称为Producer)和

java - 在某些特定情况下更喜欢编译时常量而不是枚举

我正在阅读J.Bloch的EffectiveJava并提出以下内容(关于枚举的Setcion):Farfewerenumsbenefitfromassociatingmultiplebehaviorswithasinglemethod.Inthisrelativelyrarecase,preferconstant-specificmethodstoenumsthatswitchontheirownvalues对我来说,这种使用编译时常量的情况并不清楚。您不能提供一个反射(reflect)这一点的简单示例吗? 最佳答案 我认为该段落中

java - 如何通知用户需要注意 JTabbedPane 中的特定选项卡?

假设您有一个包含五个或更多选项卡的用户界面,您需要通知用户选项卡“2”需要注意。有没有办法做到这一点?例如使选项卡闪烁橙色,或更改选项卡的颜色?我在requestFocus上没有成功。编辑:如果可能的话,我也想知道如何强制将焦点放在选项卡2上。 最佳答案 您可以通过使用一些计时器在选项卡位置更改Pane的背景和前景来实现此目的。只需每隔一段时间更改它,它就会看起来像在闪烁。这是一个演示:JFrameframe=newJFrame();frame.setSize(400,400);frame.setDefaultCloseOperat

java - 哪个线程通知唤醒?

这个问题在这里已经有了答案:Hownotifymethodworks(1个回答)关闭5年前。假设我有3个线程处于等待状态,第4个线程处于通知状态。现在,所有3个等待线程都运行并进入等待状态。完成后,第4个线程运行并调用一次通知。notify将如何确定唤醒哪个线程?是第一个调用wait的线程,最后调用wait的线程,还是基于其他一些条件?假设等待和通知使用相同的锁。

java - 如何通知 PipedInputStream 线程 PipedOutputStream 线程已写入最后一个字节?

如何正确完成管道输出端的工作?我需要写入线程终止或做一些其他工作,而读取线程读取所有写入数据直到结束。我应该在写入端关闭管道还是什么?更新1我想澄清一下......根据给定的答案,我认为设计管道行为不假设任何优雅终止是否正确?即一旦打开,停止管道的唯一方法就是打破管道?当read()方法返回-1时,传统流期望流信号结束。认为管道流永远不会发生这种情况是正确的吗? 最佳答案 是的,关闭PipedOutputStream会导致PipedInputStream出现-1。我觉得很优雅!这是我的SSCCE:importjava.io.*;im

java - 等待通知和 CountDownLatch 之间的区别

我需要一些帮助来了解使用CountDownLatch相对于传统等待通知的优势。我认为notifyAll()确实做了同样的事情,而且似乎更容易使用(可能是因为熟悉)。另外,CountDownLatch的wait()和await()有什么区别?谢谢!编辑:我想我需要重新表述我的查询:Await()按照文档说:Causesthecurrentthreadtowaituntilthelatchhascounteddowntozero,unlessthethreadisinterrupted.对我来说,很难看出wait()和await()之间的区别-await()确实在幕后使用wait(),并且

java - 如何在多线程中使用等待和通知协议(protocol)

具体来说,有人能告诉我这段代码有什么问题吗?它应该启动线程,所以应该打印“Enteringthread..”5次,然后等待直到调用notifyAll()。但是,它随机打印“Entering..”和“Done..”并继续等待其他人。publicclassThreadTestimplementsRunnable{privateintnum;privatestaticObjectobj=newObject();ThreadTest(intn){num=n;}@Overridepublicvoidrun(){synchronized(obj){try{System.out.println("E

Java APNS(Apple 推送通知服务)错误

我正在尝试使用JavaAPNS(一个开源项目)向iPhone发送推送通知。不过,我收到一个错误。我使用了.pem文件作为证书。这应该是一个.p12文件吗?我不确定有什么区别,但我在网上某处看到这些文件格式之间存在差异。代码如下:ApnsServiceservice=APNS.newService().withCert("gpk.pem","XXXX").withSandboxDestination().build();Stringpayload=APNS.newPayload().alertBody("Can'tbesimplerthanthis!").build();Stringto

java - 我们可以使用 JMX 进行警报/通知吗

以下是我要尝试实现的规范简而言之:1)必须针对应用程序中的某些事件发送一些警报。2)这些警报有用户订阅。3)并且用户设置了自己的通知首选项(例如电子邮件和/或短信)。到目前为止,我还没有找到Java的开源解决方案。JMX通知是一个选项吗?我对JMX的了解越多,我就越觉得它正在尝试实现与我的问题不同的东西。任何帮助都是有用的。 最佳答案 JMX可以是解决这个问题的一种机制,但它不是完整的解决方案。JMX为您的程序提供设施和服务,以允许客户端访问监控数据以及允许客户端对应用程序进行控制调用。正如您所提到的,JMX的一个方面是通知系统。该

java - 当一个线程完成后,如何通知主线程?

我使用FTP原始命令将文件上传到FTP服务器,我在代码中启动了一个新线程通过套接字发送文件。当新启动的线程完成发送文件时,我想向控制台输出一些消息,如何确保线程已完成工作?这是我的代码:TinyFTPClientftp=newTinyFTPClient(host,port,user,pswd);ftp.execute("TYPEA");StringpasvReturn=ftp.execute("PASV");StringpasvHost=TinyFTPClient.parseAddress(pasvReturn);intpasvPort=TinyFTPClient.parsePort(